package main

import "fmt"

/**
1.算术运算符:	+，-，*，/，%，++，--
2.赋值运算符:	=,+=,-=,*=,/=,%=
3.关系运算符:	==,!=,>,<,>=,<=
4.逻辑运算符:	&&，‖，!
5.位运算符:		&，|，^
6.其它运算符:	&，*
	&: 返回变量的存储地址
	*: 取指针变量对应的数值
*/
func main() {
	fmt.Println(4 % 5)

	//  a-b*int(a/b)
	fmt.Println(4 / 5)
	//test()

}

//
func test2() {
	num := 10
	num2 := 20.1
	num3 := float32(10.1)
	// 两个数据类型不一致，不能进行运算 需要强制转换后再进行运算
	//fmt.Println(num + num2) //invalid operation: num + num2 (mismatched types int and float64)

	fmt.Printf("%T \n", num2)
	fmt.Printf("%T \n", num3)
	fmt.Println(float64(num) + num2 + float64(num3))

	// 错误
	//fmt.Println(num - num2) // invalid operation: num - num2 (mismatched types int and float64)
	//fmt.Println(num * num2) // invalid operation: num * num2 (mismatched types int and float64)
	//fmt.Println(num / num3) // invalid operation: num * num3 (mismatched types int and float32)

}

func test() {
	// + 加号
	// 1 正数 2相加操作 3.字符串连接
	var n1 = +10
	fmt.Println(n1)

	var n2 = 10 + 20
	fmt.Println(n2)

	var s1 = "hello" + "world"
	fmt.Println(s1)

	// / 除号
	fmt.Println(10 / 3)   // 两个int类型数据运算，结果一定为int类型
	fmt.Println(10.0 / 3) // 浮点类型参与运算，结果为浮点类型

	// % 取模 等价公式 a%b = a-b*int(a/b)
	fmt.Println(10 % 3)
	fmt.Println(-10 % 3)
}
